package sampleapp.client.mvp;

import java.util.Iterator;
import java.util.List;

import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Widget;
import com.gwtplatform.mvp.client.View;

/**
 * This is a replacement for Gwt-Platform's
 * {@link com.gwtplatform.mvp.client.ViewImpl} that add a {@link Composite} like
 * behavior by letting us assigning a widget to the view.
 * 
 * <b>Important</b> call {@link #initWidget(Widget)} in your {@link View}'s
 * constructor.
 * 
 * @author Christian Goudreau
 */
public abstract class ViewImpl implements View {
  private Widget widget;

  @Override
  public void addToSlot(Object slot, Widget content) {
  }

  @Override
  public void removeFromSlot(Object slot, Widget content) {
  }

  @Override
  public void setInSlot(Object slot, Widget content) {
  }

  @Override
  public Widget asWidget() {
    return widget;
  }

  protected void initWidget(Widget widget) {
    this.widget = widget;
  }
  
  protected void populateList(List<String> lstData, ListBox lstUi){
	  Iterator<String> itr = lstData.iterator();
	  while(itr.hasNext()){
		  String strToAdd = itr.next();
		  lstUi.addItem(strToAdd);
	  }
  }
}
